/**
  **************************************************************************************
  * @file    REG_EXTI.h
  * @brief   EXTI Head File
  *
  * @version V0.01
  * @data    12/3/2018
  * @author  Eastsoft MCU Software Team
  * @note
  *
  * Copyright (C) 2018 Shanghai Eastsoft Microelectronics Co., Ltd. ALL rights reserved.
  *
  **************************************************************************************
  */

#ifndef __EXTI_H__
#define __EXTI_H__


/******************************************************************************/
/*                              设备特殊寄存器结构定义                        */
/******************************************************************************/

/*   允许匿名结构和匿名联合    */
/* #pragma anon_unions */

/****************** Bit definition for EXTI_IER register ************************/

#define  EXTI_IER_WAKEUP_POS  21U 
#define  EXTI_IER_WAKEUP_MSK  BIT(EXTI_IER_WAKEUP_POS)

#define  EXTI_IER_PVD0_POS  20U 
#define  EXTI_IER_PVD0_MSK  BIT(EXTI_IER_PVD0_POS)

#define  EXTI_IER_CMP2_POS  17U 
#define  EXTI_IER_CMP2_MSK  BIT(EXTI_IER_CMP2_POS)

#define  EXTI_IER_CMP1_POS  16U 
#define  EXTI_IER_CMP1_MSK  BIT(EXTI_IER_CMP1_POS)

#define  EXTI_IER_GPIO15_POS  15U 
#define  EXTI_IER_GPIO15_MSK  BIT(EXTI_IER_GPIO15_POS)

#define  EXTI_IER_GPIO14_POS  14U 
#define  EXTI_IER_GPIO14_MSK  BIT(EXTI_IER_GPIO14_POS)

#define  EXTI_IER_GPIO13_POS  13U 
#define  EXTI_IER_GPIO13_MSK  BIT(EXTI_IER_GPIO13_POS)

#define  EXTI_IER_GPIO12_POS  12U 
#define  EXTI_IER_GPIO12_MSK  BIT(EXTI_IER_GPIO12_POS)

#define  EXTI_IER_GPIO11_POS  11U 
#define  EXTI_IER_GPIO11_MSK  BIT(EXTI_IER_GPIO11_POS)

#define  EXTI_IER_GPIO10_POS  10U 
#define  EXTI_IER_GPIO10_MSK  BIT(EXTI_IER_GPIO10_POS)

#define  EXTI_IER_GPIO9_POS  9U 
#define  EXTI_IER_GPIO9_MSK  BIT(EXTI_IER_GPIO9_POS)

#define  EXTI_IER_GPIO8_POS  8U 
#define  EXTI_IER_GPIO8_MSK  BIT(EXTI_IER_GPIO8_POS)

#define  EXTI_IER_GPIO7_POS  7U 
#define  EXTI_IER_GPIO7_MSK  BIT(EXTI_IER_GPIO7_POS)

#define  EXTI_IER_GPIO6_POS  6U 
#define  EXTI_IER_GPIO6_MSK  BIT(EXTI_IER_GPIO6_POS)

#define  EXTI_IER_GPIO5_POS  5U 
#define  EXTI_IER_GPIO5_MSK  BIT(EXTI_IER_GPIO5_POS)

#define  EXTI_IER_GPIO4_POS  4U 
#define  EXTI_IER_GPIO4_MSK  BIT(EXTI_IER_GPIO4_POS)

#define  EXTI_IER_GPIO3_POS  3U 
#define  EXTI_IER_GPIO3_MSK  BIT(EXTI_IER_GPIO3_POS)

#define  EXTI_IER_GPIO2_POS  2U 
#define  EXTI_IER_GPIO2_MSK  BIT(EXTI_IER_GPIO2_POS)

#define  EXTI_IER_GPIO1_POS  1U 
#define  EXTI_IER_GPIO1_MSK  BIT(EXTI_IER_GPIO1_POS)

#define  EXTI_IER_GPIO0_POS  0U 
#define  EXTI_IER_GPIO0_MSK  BIT(EXTI_IER_GPIO0_POS)

/****************** Bit definition for EXTI_IDR register ************************/

#define  EXTI_IDR_WAKEUP_POS  21U 
#define  EXTI_IDR_WAKEUP_MSK  BIT(EXTI_IDR_WAKEUP_POS)

#define  EXTI_IDR_PVD0_POS  20U 
#define  EXTI_IDR_PVD0_MSK  BIT(EXTI_IDR_PVD0_POS)

#define  EXTI_IDR_CMP2_POS  17U 
#define  EXTI_IDR_CMP2_MSK  BIT(EXTI_IDR_CMP2_POS)

#define  EXTI_IDR_CMP1_POS  16U 
#define  EXTI_IDR_CMP1_MSK  BIT(EXTI_IDR_CMP1_POS)

#define  EXTI_IDR_GPIO15_POS  15U 
#define  EXTI_IDR_GPIO15_MSK  BIT(EXTI_IDR_GPIO15_POS)

#define  EXTI_IDR_GPIO14_POS  14U 
#define  EXTI_IDR_GPIO14_MSK  BIT(EXTI_IDR_GPIO14_POS)

#define  EXTI_IDR_GPIO13_POS  13U 
#define  EXTI_IDR_GPIO13_MSK  BIT(EXTI_IDR_GPIO13_POS)

#define  EXTI_IDR_GPIO12_POS  12U 
#define  EXTI_IDR_GPIO12_MSK  BIT(EXTI_IDR_GPIO12_POS)

#define  EXTI_IDR_GPIO11_POS  11U 
#define  EXTI_IDR_GPIO11_MSK  BIT(EXTI_IDR_GPIO11_POS)

#define  EXTI_IDR_GPIO10_POS  10U 
#define  EXTI_IDR_GPIO10_MSK  BIT(EXTI_IDR_GPIO10_POS)

#define  EXTI_IDR_GPIO9_POS  9U 
#define  EXTI_IDR_GPIO9_MSK  BIT(EXTI_IDR_GPIO9_POS)

#define  EXTI_IDR_GPIO8_POS  8U 
#define  EXTI_IDR_GPIO8_MSK  BIT(EXTI_IDR_GPIO8_POS)

#define  EXTI_IDR_GPIO7_POS  7U 
#define  EXTI_IDR_GPIO7_MSK  BIT(EXTI_IDR_GPIO7_POS)

#define  EXTI_IDR_GPIO6_POS  6U 
#define  EXTI_IDR_GPIO6_MSK  BIT(EXTI_IDR_GPIO6_POS)

#define  EXTI_IDR_GPIO5_POS  5U 
#define  EXTI_IDR_GPIO5_MSK  BIT(EXTI_IDR_GPIO5_POS)

#define  EXTI_IDR_GPIO4_POS  4U 
#define  EXTI_IDR_GPIO4_MSK  BIT(EXTI_IDR_GPIO4_POS)

#define  EXTI_IDR_GPIO3_POS  3U 
#define  EXTI_IDR_GPIO3_MSK  BIT(EXTI_IDR_GPIO3_POS)

#define  EXTI_IDR_GPIO2_POS  2U 
#define  EXTI_IDR_GPIO2_MSK  BIT(EXTI_IDR_GPIO2_POS)

#define  EXTI_IDR_GPIO1_POS  1U 
#define  EXTI_IDR_GPIO1_MSK  BIT(EXTI_IDR_GPIO1_POS)

#define  EXTI_IDR_GPIO0_POS  0U 
#define  EXTI_IDR_GPIO0_MSK  BIT(EXTI_IDR_GPIO0_POS)

/****************** Bit definition for EXTI_IVS register ************************/

#define  EXTI_IVS_WAKEUP_POS  21U 
#define  EXTI_IVS_WAKEUP_MSK  BIT(EXTI_IVS_WAKEUP_POS)

#define  EXTI_IVS_PVD0_POS  20U 
#define  EXTI_IVS_PVD0_MSK  BIT(EXTI_IVS_PVD0_POS)

#define  EXTI_IVS_CMP2_POS  17U 
#define  EXTI_IVS_CMP2_MSK  BIT(EXTI_IVS_CMP2_POS)

#define  EXTI_IVS_CMP1_POS  16U 
#define  EXTI_IVS_CMP1_MSK  BIT(EXTI_IVS_CMP1_POS)

#define  EXTI_IVS_GPIO15_POS  15U 
#define  EXTI_IVS_GPIO15_MSK  BIT(EXTI_IVS_GPIO15_POS)

#define  EXTI_IVS_GPIO14_POS  14U 
#define  EXTI_IVS_GPIO14_MSK  BIT(EXTI_IVS_GPIO14_POS)

#define  EXTI_IVS_GPIO13_POS  13U 
#define  EXTI_IVS_GPIO13_MSK  BIT(EXTI_IVS_GPIO13_POS)

#define  EXTI_IVS_GPIO12_POS  12U 
#define  EXTI_IVS_GPIO12_MSK  BIT(EXTI_IVS_GPIO12_POS)

#define  EXTI_IVS_GPIO11_POS  11U 
#define  EXTI_IVS_GPIO11_MSK  BIT(EXTI_IVS_GPIO11_POS)

#define  EXTI_IVS_GPIO10_POS  10U 
#define  EXTI_IVS_GPIO10_MSK  BIT(EXTI_IVS_GPIO10_POS)

#define  EXTI_IVS_GPIO9_POS  9U 
#define  EXTI_IVS_GPIO9_MSK  BIT(EXTI_IVS_GPIO9_POS)

#define  EXTI_IVS_GPIO8_POS  8U 
#define  EXTI_IVS_GPIO8_MSK  BIT(EXTI_IVS_GPIO8_POS)

#define  EXTI_IVS_GPIO7_POS  7U 
#define  EXTI_IVS_GPIO7_MSK  BIT(EXTI_IVS_GPIO7_POS)

#define  EXTI_IVS_GPIO6_POS  6U 
#define  EXTI_IVS_GPIO6_MSK  BIT(EXTI_IVS_GPIO6_POS)

#define  EXTI_IVS_GPIO5_POS  5U 
#define  EXTI_IVS_GPIO5_MSK  BIT(EXTI_IVS_GPIO5_POS)

#define  EXTI_IVS_GPIO4_POS  4U 
#define  EXTI_IVS_GPIO4_MSK  BIT(EXTI_IVS_GPIO4_POS)

#define  EXTI_IVS_GPIO3_POS  3U 
#define  EXTI_IVS_GPIO3_MSK  BIT(EXTI_IVS_GPIO3_POS)

#define  EXTI_IVS_GPIO2_POS  2U 
#define  EXTI_IVS_GPIO2_MSK  BIT(EXTI_IVS_GPIO2_POS)

#define  EXTI_IVS_GPIO1_POS  1U 
#define  EXTI_IVS_GPIO1_MSK  BIT(EXTI_IVS_GPIO1_POS)

#define  EXTI_IVS_GPIO0_POS  0U 
#define  EXTI_IVS_GPIO0_MSK  BIT(EXTI_IVS_GPIO0_POS)

/****************** Bit definition for EXTI_RIF register ************************/

#define  EXTI_RIF_WAKEUP_POS  21U 
#define  EXTI_RIF_WAKEUP_MSK  BIT(EXTI_RIF_WAKEUP_POS)

#define  EXTI_RIF_PVD0_POS  20U 
#define  EXTI_RIF_PVD0_MSK  BIT(EXTI_RIF_PVD0_POS)

#define  EXTI_RIF_CMP2_POS  17U 
#define  EXTI_RIF_CMP2_MSK  BIT(EXTI_RIF_CMP2_POS)

#define  EXTI_RIF_CMP1_POS  16U 
#define  EXTI_RIF_CMP1_MSK  BIT(EXTI_RIF_CMP1_POS)

#define  EXTI_RIF_GPIO15_POS  15U 
#define  EXTI_RIF_GPIO15_MSK  BIT(EXTI_RIF_GPIO15_POS)

#define  EXTI_RIF_GPIO14_POS  14U 
#define  EXTI_RIF_GPIO14_MSK  BIT(EXTI_RIF_GPIO14_POS)

#define  EXTI_RIF_GPIO13_POS  13U 
#define  EXTI_RIF_GPIO13_MSK  BIT(EXTI_RIF_GPIO13_POS)

#define  EXTI_RIF_GPIO12_POS  12U 
#define  EXTI_RIF_GPIO12_MSK  BIT(EXTI_RIF_GPIO12_POS)

#define  EXTI_RIF_GPIO11_POS  11U 
#define  EXTI_RIF_GPIO11_MSK  BIT(EXTI_RIF_GPIO11_POS)

#define  EXTI_RIF_GPIO10_POS  10U 
#define  EXTI_RIF_GPIO10_MSK  BIT(EXTI_RIF_GPIO10_POS)

#define  EXTI_RIF_GPIO9_POS  9U 
#define  EXTI_RIF_GPIO9_MSK  BIT(EXTI_RIF_GPIO9_POS)

#define  EXTI_RIF_GPIO8_POS  8U 
#define  EXTI_RIF_GPIO8_MSK  BIT(EXTI_RIF_GPIO8_POS)

#define  EXTI_RIF_GPIO7_POS  7U 
#define  EXTI_RIF_GPIO7_MSK  BIT(EXTI_RIF_GPIO7_POS)

#define  EXTI_RIF_GPIO6_POS  6U 
#define  EXTI_RIF_GPIO6_MSK  BIT(EXTI_RIF_GPIO6_POS)

#define  EXTI_RIF_GPIO5_POS  5U 
#define  EXTI_RIF_GPIO5_MSK  BIT(EXTI_RIF_GPIO5_POS)

#define  EXTI_RIF_GPIO4_POS  4U 
#define  EXTI_RIF_GPIO4_MSK  BIT(EXTI_RIF_GPIO4_POS)

#define  EXTI_RIF_GPIO3_POS  3U 
#define  EXTI_RIF_GPIO3_MSK  BIT(EXTI_RIF_GPIO3_POS)

#define  EXTI_RIF_GPIO2_POS  2U 
#define  EXTI_RIF_GPIO2_MSK  BIT(EXTI_RIF_GPIO2_POS)

#define  EXTI_RIF_GPIO1_POS  1U 
#define  EXTI_RIF_GPIO1_MSK  BIT(EXTI_RIF_GPIO1_POS)

#define  EXTI_RIF_GPIO0_POS  0U 
#define  EXTI_RIF_GPIO0_MSK  BIT(EXTI_RIF_GPIO0_POS)

/****************** Bit definition for EXTI_IFM register ************************/

#define  EXTI_IFM_WAKEUP_POS  21U 
#define  EXTI_IFM_WAKEUP_MSK  BIT(EXTI_IFM_WAKEUP_POS)

#define  EXTI_IFM_PVD0_POS  20U 
#define  EXTI_IFM_PVD0_MSK  BIT(EXTI_IFM_PVD0_POS)

#define  EXTI_IFM_CMP2_POS  17U 
#define  EXTI_IFM_CMP2_MSK  BIT(EXTI_IFM_CMP2_POS)

#define  EXTI_IFM_CMP1_POS  16U 
#define  EXTI_IFM_CMP1_MSK  BIT(EXTI_IFM_CMP1_POS)

#define  EXTI_IFM_GPIO15_POS  15U 
#define  EXTI_IFM_GPIO15_MSK  BIT(EXTI_IFM_GPIO15_POS)

#define  EXTI_IFM_GPIO14_POS  14U 
#define  EXTI_IFM_GPIO14_MSK  BIT(EXTI_IFM_GPIO14_POS)

#define  EXTI_IFM_GPIO13_POS  13U 
#define  EXTI_IFM_GPIO13_MSK  BIT(EXTI_IFM_GPIO13_POS)

#define  EXTI_IFM_GPIO12_POS  12U 
#define  EXTI_IFM_GPIO12_MSK  BIT(EXTI_IFM_GPIO12_POS)

#define  EXTI_IFM_GPIO11_POS  11U 
#define  EXTI_IFM_GPIO11_MSK  BIT(EXTI_IFM_GPIO11_POS)

#define  EXTI_IFM_GPIO10_POS  10U 
#define  EXTI_IFM_GPIO10_MSK  BIT(EXTI_IFM_GPIO10_POS)

#define  EXTI_IFM_GPIO9_POS  9U 
#define  EXTI_IFM_GPIO9_MSK  BIT(EXTI_IFM_GPIO9_POS)

#define  EXTI_IFM_GPIO8_POS  8U 
#define  EXTI_IFM_GPIO8_MSK  BIT(EXTI_IFM_GPIO8_POS)

#define  EXTI_IFM_GPIO7_POS  7U 
#define  EXTI_IFM_GPIO7_MSK  BIT(EXTI_IFM_GPIO7_POS)

#define  EXTI_IFM_GPIO6_POS  6U 
#define  EXTI_IFM_GPIO6_MSK  BIT(EXTI_IFM_GPIO6_POS)

#define  EXTI_IFM_GPIO5_POS  5U 
#define  EXTI_IFM_GPIO5_MSK  BIT(EXTI_IFM_GPIO5_POS)

#define  EXTI_IFM_GPIO4_POS  4U 
#define  EXTI_IFM_GPIO4_MSK  BIT(EXTI_IFM_GPIO4_POS)

#define  EXTI_IFM_GPIO3_POS  3U 
#define  EXTI_IFM_GPIO3_MSK  BIT(EXTI_IFM_GPIO3_POS)

#define  EXTI_IFM_GPIO2_POS  2U 
#define  EXTI_IFM_GPIO2_MSK  BIT(EXTI_IFM_GPIO2_POS)

#define  EXTI_IFM_GPIO1_POS  1U 
#define  EXTI_IFM_GPIO1_MSK  BIT(EXTI_IFM_GPIO1_POS)

#define  EXTI_IFM_GPIO0_POS  0U 
#define  EXTI_IFM_GPIO0_MSK  BIT(EXTI_IFM_GPIO0_POS)

/****************** Bit definition for EXTI_ICR register ************************/

#define  EXTI_ICR_WAKEUP_POS  21U 
#define  EXTI_ICR_WAKEUP_MSK  BIT(EXTI_ICR_WAKEUP_POS)

#define  EXTI_ICR_PVD0_POS  20U 
#define  EXTI_ICR_PVD0_MSK  BIT(EXTI_ICR_PVD0_POS)

#define  EXTI_ICR_CMP2_POS  17U 
#define  EXTI_ICR_CMP2_MSK  BIT(EXTI_ICR_CMP2_POS)

#define  EXTI_ICR_CMP1_POS  16U 
#define  EXTI_ICR_CMP1_MSK  BIT(EXTI_ICR_CMP1_POS)

#define  EXTI_ICR_GPIO15_POS  15U 
#define  EXTI_ICR_GPIO15_MSK  BIT(EXTI_ICR_GPIO15_POS)

#define  EXTI_ICR_GPIO14_POS  14U 
#define  EXTI_ICR_GPIO14_MSK  BIT(EXTI_ICR_GPIO14_POS)

#define  EXTI_ICR_GPIO13_POS  13U 
#define  EXTI_ICR_GPIO13_MSK  BIT(EXTI_ICR_GPIO13_POS)

#define  EXTI_ICR_GPIO12_POS  12U 
#define  EXTI_ICR_GPIO12_MSK  BIT(EXTI_ICR_GPIO12_POS)

#define  EXTI_ICR_GPIO11_POS  11U 
#define  EXTI_ICR_GPIO11_MSK  BIT(EXTI_ICR_GPIO11_POS)

#define  EXTI_ICR_GPIO10_POS  10U 
#define  EXTI_ICR_GPIO10_MSK  BIT(EXTI_ICR_GPIO10_POS)

#define  EXTI_ICR_GPIO9_POS  9U 
#define  EXTI_ICR_GPIO9_MSK  BIT(EXTI_ICR_GPIO9_POS)

#define  EXTI_ICR_GPIO8_POS  8U 
#define  EXTI_ICR_GPIO8_MSK  BIT(EXTI_ICR_GPIO8_POS)

#define  EXTI_ICR_GPIO7_POS  7U 
#define  EXTI_ICR_GPIO7_MSK  BIT(EXTI_ICR_GPIO7_POS)

#define  EXTI_ICR_GPIO6_POS  6U 
#define  EXTI_ICR_GPIO6_MSK  BIT(EXTI_ICR_GPIO6_POS)

#define  EXTI_ICR_GPIO5_POS  5U 
#define  EXTI_ICR_GPIO5_MSK  BIT(EXTI_ICR_GPIO5_POS)

#define  EXTI_ICR_GPIO4_POS  4U 
#define  EXTI_ICR_GPIO4_MSK  BIT(EXTI_ICR_GPIO4_POS)

#define  EXTI_ICR_GPIO3_POS  3U 
#define  EXTI_ICR_GPIO3_MSK  BIT(EXTI_ICR_GPIO3_POS)

#define  EXTI_ICR_GPIO2_POS  2U 
#define  EXTI_ICR_GPIO2_MSK  BIT(EXTI_ICR_GPIO2_POS)

#define  EXTI_ICR_GPIO1_POS  1U 
#define  EXTI_ICR_GPIO1_MSK  BIT(EXTI_ICR_GPIO1_POS)

#define  EXTI_ICR_GPIO0_POS  0U 
#define  EXTI_ICR_GPIO0_MSK  BIT(EXTI_ICR_GPIO0_POS)

/****************** Bit definition for EXTI_RTS register ************************/

#define  EXTI_RTS_WAKEUP_POS  21U 
#define  EXTI_RTS_WAKEUP_MSK  BIT(EXTI_RTS_WAKEUP_POS)

#define  EXTI_RTS_PVD0_POS  20U 
#define  EXTI_RTS_PVD0_MSK  BIT(EXTI_RTS_PVD0_POS)

#define  EXTI_RTS_CMP2_POS  17U 
#define  EXTI_RTS_CMP2_MSK  BIT(EXTI_RTS_CMP2_POS)

#define  EXTI_RTS_CMP1_POS  16U 
#define  EXTI_RTS_CMP1_MSK  BIT(EXTI_RTS_CMP1_POS)

#define  EXTI_RTS_GPIO15_POS  15U 
#define  EXTI_RTS_GPIO15_MSK  BIT(EXTI_RTS_GPIO15_POS)

#define  EXTI_RTS_GPIO14_POS  14U 
#define  EXTI_RTS_GPIO14_MSK  BIT(EXTI_RTS_GPIO14_POS)

#define  EXTI_RTS_GPIO13_POS  13U 
#define  EXTI_RTS_GPIO13_MSK  BIT(EXTI_RTS_GPIO13_POS)

#define  EXTI_RTS_GPIO12_POS  12U 
#define  EXTI_RTS_GPIO12_MSK  BIT(EXTI_RTS_GPIO12_POS)

#define  EXTI_RTS_GPIO11_POS  11U 
#define  EXTI_RTS_GPIO11_MSK  BIT(EXTI_RTS_GPIO11_POS)

#define  EXTI_RTS_GPIO10_POS  10U 
#define  EXTI_RTS_GPIO10_MSK  BIT(EXTI_RTS_GPIO10_POS)

#define  EXTI_RTS_GPIO9_POS  9U 
#define  EXTI_RTS_GPIO9_MSK  BIT(EXTI_RTS_GPIO9_POS)

#define  EXTI_RTS_GPIO8_POS  8U 
#define  EXTI_RTS_GPIO8_MSK  BIT(EXTI_RTS_GPIO8_POS)

#define  EXTI_RTS_GPIO7_POS  7U 
#define  EXTI_RTS_GPIO7_MSK  BIT(EXTI_RTS_GPIO7_POS)

#define  EXTI_RTS_GPIO6_POS  6U 
#define  EXTI_RTS_GPIO6_MSK  BIT(EXTI_RTS_GPIO6_POS)

#define  EXTI_RTS_GPIO5_POS  5U 
#define  EXTI_RTS_GPIO5_MSK  BIT(EXTI_RTS_GPIO5_POS)

#define  EXTI_RTS_GPIO4_POS  4U 
#define  EXTI_RTS_GPIO4_MSK  BIT(EXTI_RTS_GPIO4_POS)

#define  EXTI_RTS_GPIO3_POS  3U 
#define  EXTI_RTS_GPIO3_MSK  BIT(EXTI_RTS_GPIO3_POS)

#define  EXTI_RTS_GPIO2_POS  2U 
#define  EXTI_RTS_GPIO2_MSK  BIT(EXTI_RTS_GPIO2_POS)

#define  EXTI_RTS_GPIO1_POS  1U 
#define  EXTI_RTS_GPIO1_MSK  BIT(EXTI_RTS_GPIO1_POS)

#define  EXTI_RTS_GPIO0_POS  0U 
#define  EXTI_RTS_GPIO0_MSK  BIT(EXTI_RTS_GPIO0_POS)

/****************** Bit definition for EXTI_FTS register ************************/

#define  EXTI_FTS_WAKEUP_POS  21U 
#define  EXTI_FTS_WAKEUP_MSK  BIT(EXTI_FTS_WAKEUP_POS)

#define  EXTI_FTS_PVD0_POS  20U 
#define  EXTI_FTS_PVD0_MSK  BIT(EXTI_FTS_PVD0_POS)

#define  EXTI_FTS_CMP2_POS  17U 
#define  EXTI_FTS_CMP2_MSK  BIT(EXTI_FTS_CMP2_POS)

#define  EXTI_FTS_CMP1_POS  16U 
#define  EXTI_FTS_CMP1_MSK  BIT(EXTI_FTS_CMP1_POS)

#define  EXTI_FTS_GPIO15_POS  15U 
#define  EXTI_FTS_GPIO15_MSK  BIT(EXTI_FTS_GPIO15_POS)

#define  EXTI_FTS_GPIO14_POS  14U 
#define  EXTI_FTS_GPIO14_MSK  BIT(EXTI_FTS_GPIO14_POS)

#define  EXTI_FTS_GPIO13_POS  13U 
#define  EXTI_FTS_GPIO13_MSK  BIT(EXTI_FTS_GPIO13_POS)

#define  EXTI_FTS_GPIO12_POS  12U 
#define  EXTI_FTS_GPIO12_MSK  BIT(EXTI_FTS_GPIO12_POS)

#define  EXTI_FTS_GPIO11_POS  11U 
#define  EXTI_FTS_GPIO11_MSK  BIT(EXTI_FTS_GPIO11_POS)

#define  EXTI_FTS_GPIO10_POS  10U 
#define  EXTI_FTS_GPIO10_MSK  BIT(EXTI_FTS_GPIO10_POS)

#define  EXTI_FTS_GPIO9_POS  9U 
#define  EXTI_FTS_GPIO9_MSK  BIT(EXTI_FTS_GPIO9_POS)

#define  EXTI_FTS_GPIO8_POS  8U 
#define  EXTI_FTS_GPIO8_MSK  BIT(EXTI_FTS_GPIO8_POS)

#define  EXTI_FTS_GPIO7_POS  7U 
#define  EXTI_FTS_GPIO7_MSK  BIT(EXTI_FTS_GPIO7_POS)

#define  EXTI_FTS_GPIO6_POS  6U 
#define  EXTI_FTS_GPIO6_MSK  BIT(EXTI_FTS_GPIO6_POS)

#define  EXTI_FTS_GPIO5_POS  5U 
#define  EXTI_FTS_GPIO5_MSK  BIT(EXTI_FTS_GPIO5_POS)

#define  EXTI_FTS_GPIO4_POS  4U 
#define  EXTI_FTS_GPIO4_MSK  BIT(EXTI_FTS_GPIO4_POS)

#define  EXTI_FTS_GPIO3_POS  3U 
#define  EXTI_FTS_GPIO3_MSK  BIT(EXTI_FTS_GPIO3_POS)

#define  EXTI_FTS_GPIO2_POS  2U 
#define  EXTI_FTS_GPIO2_MSK  BIT(EXTI_FTS_GPIO2_POS)

#define  EXTI_FTS_GPIO1_POS  1U 
#define  EXTI_FTS_GPIO1_MSK  BIT(EXTI_FTS_GPIO1_POS)

#define  EXTI_FTS_GPIO0_POS  0U 
#define  EXTI_FTS_GPIO0_MSK  BIT(EXTI_FTS_GPIO0_POS)

/****************** Bit definition for EXTI_SWI register ************************/

#define  EXTI_SWI_WAKEUP_POS  21U 
#define  EXTI_SWI_WAKEUP_MSK  BIT(EXTI_SWI_WAKEUP_POS)

#define  EXTI_SWI_PVD0_POS  20U 
#define  EXTI_SWI_PVD0_MSK  BIT(EXTI_SWI_PVD0_POS)

#define  EXTI_SWI_CMP2_POS  17U 
#define  EXTI_SWI_CMP2_MSK  BIT(EXTI_SWI_CMP2_POS)

#define  EXTI_SWI_CMP1_POS  16U 
#define  EXTI_SWI_CMP1_MSK  BIT(EXTI_SWI_CMP1_POS)

#define  EXTI_SWI_GPIO15_POS  15U 
#define  EXTI_SWI_GPIO15_MSK  BIT(EXTI_SWI_GPIO15_POS)

#define  EXTI_SWI_GPIO14_POS  14U 
#define  EXTI_SWI_GPIO14_MSK  BIT(EXTI_SWI_GPIO14_POS)

#define  EXTI_SWI_GPIO13_POS  13U 
#define  EXTI_SWI_GPIO13_MSK  BIT(EXTI_SWI_GPIO13_POS)

#define  EXTI_SWI_GPIO12_POS  12U 
#define  EXTI_SWI_GPIO12_MSK  BIT(EXTI_SWI_GPIO12_POS)

#define  EXTI_SWI_GPIO11_POS  11U 
#define  EXTI_SWI_GPIO11_MSK  BIT(EXTI_SWI_GPIO11_POS)

#define  EXTI_SWI_GPIO10_POS  10U 
#define  EXTI_SWI_GPIO10_MSK  BIT(EXTI_SWI_GPIO10_POS)

#define  EXTI_SWI_GPIO9_POS  9U 
#define  EXTI_SWI_GPIO9_MSK  BIT(EXTI_SWI_GPIO9_POS)

#define  EXTI_SWI_GPIO8_POS  8U 
#define  EXTI_SWI_GPIO8_MSK  BIT(EXTI_SWI_GPIO8_POS)

#define  EXTI_SWI_GPIO7_POS  7U 
#define  EXTI_SWI_GPIO7_MSK  BIT(EXTI_SWI_GPIO7_POS)

#define  EXTI_SWI_GPIO6_POS  6U 
#define  EXTI_SWI_GPIO6_MSK  BIT(EXTI_SWI_GPIO6_POS)

#define  EXTI_SWI_GPIO5_POS  5U 
#define  EXTI_SWI_GPIO5_MSK  BIT(EXTI_SWI_GPIO5_POS)

#define  EXTI_SWI_GPIO4_POS  4U 
#define  EXTI_SWI_GPIO4_MSK  BIT(EXTI_SWI_GPIO4_POS)

#define  EXTI_SWI_GPIO3_POS  3U 
#define  EXTI_SWI_GPIO3_MSK  BIT(EXTI_SWI_GPIO3_POS)

#define  EXTI_SWI_GPIO2_POS  2U 
#define  EXTI_SWI_GPIO2_MSK  BIT(EXTI_SWI_GPIO2_POS)

#define  EXTI_SWI_GPIO1_POS  1U 
#define  EXTI_SWI_GPIO1_MSK  BIT(EXTI_SWI_GPIO1_POS)

#define  EXTI_SWI_GPIO0_POS  0U 
#define  EXTI_SWI_GPIO0_MSK  BIT(EXTI_SWI_GPIO0_POS)

/****************** Bit definition for EXTI_ADTE register ************************/

#define  EXTI_ADTE_WAKEUP_POS  21U 
#define  EXTI_ADTE_WAKEUP_MSK  BIT(EXTI_ADTE_WAKEUP_POS)

#define  EXTI_ADTE_PVD0_POS  20U 
#define  EXTI_ADTE_PVD0_MSK  BIT(EXTI_ADTE_PVD0_POS)

#define  EXTI_ADTE_CMP2_POS  17U 
#define  EXTI_ADTE_CMP2_MSK  BIT(EXTI_ADTE_CMP2_POS)

#define  EXTI_ADTE_CMP1_POS  16U 
#define  EXTI_ADTE_CMP1_MSK  BIT(EXTI_ADTE_CMP1_POS)

#define  EXTI_ADTE_GPIO15_POS  15U 
#define  EXTI_ADTE_GPIO15_MSK  BIT(EXTI_ADTE_GPIO15_POS)

#define  EXTI_ADTE_GPIO14_POS  14U 
#define  EXTI_ADTE_GPIO14_MSK  BIT(EXTI_ADTE_GPIO14_POS)

#define  EXTI_ADTE_GPIO13_POS  13U 
#define  EXTI_ADTE_GPIO13_MSK  BIT(EXTI_ADTE_GPIO13_POS)

#define  EXTI_ADTE_GPIO12_POS  12U 
#define  EXTI_ADTE_GPIO12_MSK  BIT(EXTI_ADTE_GPIO12_POS)

#define  EXTI_ADTE_GPIO11_POS  11U 
#define  EXTI_ADTE_GPIO11_MSK  BIT(EXTI_ADTE_GPIO11_POS)

#define  EXTI_ADTE_GPIO10_POS  10U 
#define  EXTI_ADTE_GPIO10_MSK  BIT(EXTI_ADTE_GPIO10_POS)

#define  EXTI_ADTE_GPIO9_POS  9U 
#define  EXTI_ADTE_GPIO9_MSK  BIT(EXTI_ADTE_GPIO9_POS)

#define  EXTI_ADTE_GPIO8_POS  8U 
#define  EXTI_ADTE_GPIO8_MSK  BIT(EXTI_ADTE_GPIO8_POS)

#define  EXTI_ADTE_GPIO7_POS  7U 
#define  EXTI_ADTE_GPIO7_MSK  BIT(EXTI_ADTE_GPIO7_POS)

#define  EXTI_ADTE_GPIO6_POS  6U 
#define  EXTI_ADTE_GPIO6_MSK  BIT(EXTI_ADTE_GPIO6_POS)

#define  EXTI_ADTE_GPIO5_POS  5U 
#define  EXTI_ADTE_GPIO5_MSK  BIT(EXTI_ADTE_GPIO5_POS)

#define  EXTI_ADTE_GPIO4_POS  4U 
#define  EXTI_ADTE_GPIO4_MSK  BIT(EXTI_ADTE_GPIO4_POS)

#define  EXTI_ADTE_GPIO3_POS  3U 
#define  EXTI_ADTE_GPIO3_MSK  BIT(EXTI_ADTE_GPIO3_POS)

#define  EXTI_ADTE_GPIO2_POS  2U 
#define  EXTI_ADTE_GPIO2_MSK  BIT(EXTI_ADTE_GPIO2_POS)

#define  EXTI_ADTE_GPIO1_POS  1U 
#define  EXTI_ADTE_GPIO1_MSK  BIT(EXTI_ADTE_GPIO1_POS)

#define  EXTI_ADTE_GPIO0_POS  0U 
#define  EXTI_ADTE_GPIO0_MSK  BIT(EXTI_ADTE_GPIO0_POS)

/****************** Bit definition for EXTI_DB register ************************/

#define  EXTI_DB_WAKEUP_POS  21U 
#define  EXTI_DB_WAKEUP_MSK  BIT(EXTI_DB_WAKEUP_POS)

#define  EXTI_DB_PVD0_POS  20U 
#define  EXTI_DB_PVD0_MSK  BIT(EXTI_DB_PVD0_POS)

#define  EXTI_DB_CMP2_POS  17U 
#define  EXTI_DB_CMP2_MSK  BIT(EXTI_DB_CMP2_POS)

#define  EXTI_DB_CMP1_POS  16U 
#define  EXTI_DB_CMP1_MSK  BIT(EXTI_DB_CMP1_POS)

#define  EXTI_DB_GPIO15_POS  15U 
#define  EXTI_DB_GPIO15_MSK  BIT(EXTI_DB_GPIO15_POS)

#define  EXTI_DB_GPIO14_POS  14U 
#define  EXTI_DB_GPIO14_MSK  BIT(EXTI_DB_GPIO14_POS)

#define  EXTI_DB_GPIO13_POS  13U 
#define  EXTI_DB_GPIO13_MSK  BIT(EXTI_DB_GPIO13_POS)

#define  EXTI_DB_GPIO12_POS  12U 
#define  EXTI_DB_GPIO12_MSK  BIT(EXTI_DB_GPIO12_POS)

#define  EXTI_DB_GPIO11_POS  11U 
#define  EXTI_DB_GPIO11_MSK  BIT(EXTI_DB_GPIO11_POS)

#define  EXTI_DB_GPIO10_POS  10U 
#define  EXTI_DB_GPIO10_MSK  BIT(EXTI_DB_GPIO10_POS)

#define  EXTI_DB_GPIO9_POS  9U 
#define  EXTI_DB_GPIO9_MSK  BIT(EXTI_DB_GPIO9_POS)

#define  EXTI_DB_GPIO8_POS  8U 
#define  EXTI_DB_GPIO8_MSK  BIT(EXTI_DB_GPIO8_POS)

#define  EXTI_DB_GPIO7_POS  7U 
#define  EXTI_DB_GPIO7_MSK  BIT(EXTI_DB_GPIO7_POS)

#define  EXTI_DB_GPIO6_POS  6U 
#define  EXTI_DB_GPIO6_MSK  BIT(EXTI_DB_GPIO6_POS)

#define  EXTI_DB_GPIO5_POS  5U 
#define  EXTI_DB_GPIO5_MSK  BIT(EXTI_DB_GPIO5_POS)

#define  EXTI_DB_GPIO4_POS  4U 
#define  EXTI_DB_GPIO4_MSK  BIT(EXTI_DB_GPIO4_POS)

#define  EXTI_DB_GPIO3_POS  3U 
#define  EXTI_DB_GPIO3_MSK  BIT(EXTI_DB_GPIO3_POS)

#define  EXTI_DB_GPIO2_POS  2U 
#define  EXTI_DB_GPIO2_MSK  BIT(EXTI_DB_GPIO2_POS)

#define  EXTI_DB_GPIO1_POS  1U 
#define  EXTI_DB_GPIO1_MSK  BIT(EXTI_DB_GPIO1_POS)

#define  EXTI_DB_GPIO0_POS  0U 
#define  EXTI_DB_GPIO0_MSK  BIT(EXTI_DB_GPIO0_POS)

/****************** Bit definition for EXTI_DBCON register ************************/

#define  EXTI_DBCON_DBPRE_POSS  8U 
#define  EXTI_DBCON_DBPRE_POSE  15U 
#define  EXTI_DBCON_DBPRE_MSK  BITS(EXTI_DBCON_DBPRE_POSS,EXTI_DBCON_DBPRE_POSE)

#define  EXTI_DBCON_DBCNT_POSS  0U 
#define  EXTI_DBCON_DBCNT_POSE  2U 
#define  EXTI_DBCON_DBCNT_MSK  BITS(EXTI_DBCON_DBCNT_POSS,EXTI_DBCON_DBCNT_POSE)

/****************** Bit definition for EXTI_ICFG1 register ************************/

#define  EXTI_ICFG1_GPIO7_POSS  28U 
#define  EXTI_ICFG1_GPIO7_POSE  31U 
#define  EXTI_ICFG1_GPIO7_MSK  BITS(EXTI_ICFG1_GPIO7_POSS,EXTI_ICFG1_GPIO7_POSE)

#define  EXTI_ICFG1_GPIO6_POSS  24U 
#define  EXTI_ICFG1_GPIO6_POSE  27U 
#define  EXTI_ICFG1_GPIO6_MSK  BITS(EXTI_ICFG1_GPIO6_POSS,EXTI_ICFG1_GPIO6_POSE)

#define  EXTI_ICFG1_GPIO5_POSS  20U 
#define  EXTI_ICFG1_GPIO5_POSE  23U 
#define  EXTI_ICFG1_GPIO5_MSK  BITS(EXTI_ICFG1_GPIO5_POSS,EXTI_ICFG1_GPIO5_POSE)

#define  EXTI_ICFG1_GPIO4_POSS  16U 
#define  EXTI_ICFG1_GPIO4_POSE  19U 
#define  EXTI_ICFG1_GPIO4_MSK  BITS(EXTI_ICFG1_GPIO4_POSS,EXTI_ICFG1_GPIO4_POSE)

#define  EXTI_ICFG1_GPIO3_POSS  12U 
#define  EXTI_ICFG1_GPIO3_POSE  15U 
#define  EXTI_ICFG1_GPIO3_MSK  BITS(EXTI_ICFG1_GPIO3_POSS,EXTI_ICFG1_GPIO3_POSE)

#define  EXTI_ICFG1_GPIO2_POSS  8U 
#define  EXTI_ICFG1_GPIO2_POSE  11U 
#define  EXTI_ICFG1_GPIO2_MSK  BITS(EXTI_ICFG1_GPIO2_POSS,EXTI_ICFG1_GPIO2_POSE)

#define  EXTI_ICFG1_GPIO1_POSS  4U 
#define  EXTI_ICFG1_GPIO1_POSE  7U 
#define  EXTI_ICFG1_GPIO1_MSK  BITS(EXTI_ICFG1_GPIO1_POSS,EXTI_ICFG1_GPIO1_POSE)

#define  EXTI_ICFG1_GPIO0_POSS  0U 
#define  EXTI_ICFG1_GPIO0_POSE  3U 
#define  EXTI_ICFG1_GPIO0_MSK  BITS(EXTI_ICFG1_GPIO0_POSS,EXTI_ICFG1_GPIO0_POSE)

/****************** Bit definition for EXTI_ICFG2 register ************************/

#define  EXTI_ICFG2_GPIO15_POSS  28U 
#define  EXTI_ICFG2_GPIO15_POSE  31U 
#define  EXTI_ICFG2_GPIO15_MSK  BITS(EXTI_ICFG2_GPIO15_POSS,EXTI_ICFG2_GPIO15_POSE)

#define  EXTI_ICFG2_GPIO14_POSS  24U 
#define  EXTI_ICFG2_GPIO14_POSE  27U 
#define  EXTI_ICFG2_GPIO14_MSK  BITS(EXTI_ICFG2_GPIO14_POSS,EXTI_ICFG2_GPIO14_POSE)

#define  EXTI_ICFG2_GPIO13_POSS  20U 
#define  EXTI_ICFG2_GPIO13_POSE  23U 
#define  EXTI_ICFG2_GPIO13_MSK  BITS(EXTI_ICFG2_GPIO13_POSS,EXTI_ICFG2_GPIO13_POSE)

#define  EXTI_ICFG2_GPIO12_POSS  16U 
#define  EXTI_ICFG2_GPIO12_POSE  19U 
#define  EXTI_ICFG2_GPIO12_MSK  BITS(EXTI_ICFG2_GPIO12_POSS,EXTI_ICFG2_GPIO12_POSE)

#define  EXTI_ICFG2_GPIO11_POSS  12U 
#define  EXTI_ICFG2_GPIO11_POSE  15U 
#define  EXTI_ICFG2_GPIO11_MSK  BITS(EXTI_ICFG2_GPIO11_POSS,EXTI_ICFG2_GPIO11_POSE)

#define  EXTI_ICFG2_GPIO10_POSS  8U 
#define  EXTI_ICFG2_GPIO10_POSE  11U 
#define  EXTI_ICFG2_GPIO10_MSK  BITS(EXTI_ICFG2_GPIO10_POSS,EXTI_ICFG2_GPIO10_POSE)

#define  EXTI_ICFG2_GPIO9_POSS  4U 
#define  EXTI_ICFG2_GPIO9_POSE  7U 
#define  EXTI_ICFG2_GPIO9_MSK  BITS(EXTI_ICFG2_GPIO9_POSS,EXTI_ICFG2_GPIO9_POSE)

#define  EXTI_ICFG2_GPIO8_POSS  0U 
#define  EXTI_ICFG2_GPIO8_POSE  3U 
#define  EXTI_ICFG2_GPIO8_MSK  BITS(EXTI_ICFG2_GPIO8_POSS,EXTI_ICFG2_GPIO8_POSE)

typedef struct
{
  __O uint32_t IER;
  __O uint32_t IDR;
  __I uint32_t IVS;
  __I uint32_t RIF;
  __I uint32_t IFM;
  __O uint32_t ICR;
  __IO uint32_t RTS;
  __IO uint32_t FTS;
  __O uint32_t SWI;
  __IO uint32_t ADTE;
  __IO uint32_t DB;
  __IO uint32_t DBCON;
  __IO uint32_t ICFG1;
  __IO uint32_t ICFG2;
} EXTI_TypeDef;





#endif
